{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "import utils.config as config\n",
    "from estimate import estimate\n",
    "from compute_metrics import f1_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device('cuda')\n",
    "model = torch.load('logs/best_checkpoints/SWaT_parameters.pt', map_location=device)\n",
    "model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load test dataset.\n",
    "dataset = 'SWaT'  # or any dataset in SMAP/WSL/SMD/WADI\n",
    "test_data = np.load(config.TEST_DATASET[dataset])\n",
    "test_label = np.load(config.TEST_LABEL[dataset])\n",
    "\n",
    "# Data divisions.\n",
    "test_divisions = config.DEFAULT_DIVISION[dataset]\n",
    "if test_divisions == 'total':\n",
    "        test_divisions = [[0, len(test_data)]]\n",
    "else:\n",
    "    with open(config.DATA_DIVISION[dataset][test_divisions], 'r') as f:\n",
    "        test_divisions = json.load(f)\n",
    "    if isinstance(test_divisions, dict):\n",
    "        test_divisions = test_divisions.values()\n",
    "\n",
    "# Ignore the specific columns.\n",
    "if dataset in config.IGNORED_COLUMNS.keys():\n",
    "    ignored_column = np.array(config.IGNORED_COLUMNS[dataset])\n",
    "    remaining_column = [col for col in range(len(test_data[0])) if col not in ignored_column]\n",
    "    test_data = test_data[:, remaining_column]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5056 windows are computed.\n",
      "10048 windows are computed.\n",
      "15040 windows are computed.\n",
      "20032 windows are computed.\n",
      "25024 windows are computed.\n"
     ]
    }
   ],
   "source": [
    "# Estimate anomaly scores.\n",
    "anomaly_scores = estimate(test_data, model, torch.nn.Sigmoid().to(device), 1, 64, 16, test_divisions, 5000, device)\n",
    "anomaly_scores = anomaly_scores.cpu().numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1152x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1152x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot data and anomaly scores.\n",
    "index = (0, 20000)  # interval for time steps\n",
    "data_col_index = 0  # index of data column\n",
    "\n",
    "label = test_label[index[0]:index[1]].astype(bool)\n",
    "\n",
    "plt.figure(figsize=(16, 4))\n",
    "plt.plot(test_data[index[0]:index[1], data_col_index], alpha=0.6)\n",
    "plt.scatter(np.arange(index[1]-index[0])[label], test_data[index[0]:index[1]][label, data_col_index],\n",
    "            c='r', s=1, alpha=0.8)\n",
    "plt.title('Original Data')\n",
    "plt.show()\n",
    "\n",
    "plt.figure(figsize=(16, 4))\n",
    "plt.plot(anomaly_scores[index[0]:index[1], 0], alpha=0.6)\n",
    "plt.scatter(np.arange(index[1]-index[0])[label], anomaly_scores[index[0]:index[1]][label, 0],\n",
    "            c='r', s=1, alpha=0.8)\n",
    "plt.title('Anomaly Scores')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best F1-score without point adjustment\n",
      "anomaly rate: 0.097 | precision: 0.96132 | recall: 0.76863 | F1-score: 0.85425\n",
      "\n",
      "Best F1-score with point adjustment\n",
      "anomaly rate: 0.040 | precision: 0.97682 | recall: 0.87762 | F1-score: 0.92456\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Compute precisions, recalls, F1-scores of the result.\n",
    "# Standard metrics\n",
    "best_eval = (0, 0, 0)\n",
    "best_rate = 0\n",
    "for rate in np.arange(0.001, 0.301, 0.001):\n",
    "    evaluation = f1_score(test_label, anomaly_scores[:, 0], rate, False)\n",
    "    if evaluation[2] > best_eval[2]:\n",
    "        best_eval = evaluation\n",
    "        best_rate = rate\n",
    "print('Best F1-score without point adjustment')\n",
    "print(f'anomaly rate: {best_rate:.3f} | precision: {best_eval[0]:.5f} | recall: {best_eval[1]:.5f} | F1-score: {best_eval[2]:.5f}\\n')\n",
    "\n",
    "# Metrics after point adjustment\n",
    "best_eval = (0, 0, 0)\n",
    "best_rate = 0\n",
    "for rate in np.arange(0.001, 0.301, 0.001):\n",
    "    evaluation = f1_score(test_label, anomaly_scores[:, 0], rate, True)\n",
    "    if evaluation[2] > best_eval[2]:\n",
    "        best_eval = evaluation\n",
    "        best_rate = rate\n",
    "print('Best F1-score with point adjustment')\n",
    "print(f'anomaly rate: {best_rate:.3f} | precision: {best_eval[0]:.5f} | recall: {best_eval[1]:.5f} | F1-score: {best_eval[2]:.5f}\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ano_trans",
   "language": "python",
   "name": "ano_trans"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
